



class AttributeValuesControllerTests extends GroovyTestCase {

	
	def helper

    def stitchesService
	
	
	
	
	void testSaveAttributeValuesStringValue() {


		Long contentDefId =helper.getContentDefId(name:"testSaveAttributeValuesStringValue")
		
		
		
		
		//add String attribute
		println 'testSaveAttributeValuesStringValue'
		
		println 'hey1'
		printStuff(contentDefId:contentDefId,valueType:'String')
					println 'hey1'
					
		Long attributeId=helper.getAttributeId(attributeName:'testSaveAttributeValuesStringValue',contentDefId:contentDefId,valueType:'String')		
				println 'testSaveAttributeValuesStringValue2'
		//create content
		Long contentId = helper.getContentId(contentDefId:contentDefId,name:'testSaveAttributeValuesStringValue')
		//create content version
		Long contentVersionId =helper.getContentVersionId(contentId:contentId)
		
		
		def controller = new AttributeValuesController()
		//need to send contentVersionId, attributeId and string value
		controller.stitchesService  = stitchesService
		controller.request.parameters = ['contentVersionId':contentVersionId.toString(),attributeId:attributeId.toString(),'valueAsString':'Test String Value']
		controller.saveAttributeValue()

		
		
	}
	void printStuff(Map args) {
		println "blah=" + args.contentDefId
		println "blah=" + args.valueType
	}
	
	void testSaveAttributeValuesIntegerValue() {
		//create contentdef
		Long contentDefId =helper.getContentDefId(name:"testSaveAttributeValuesIntegerValue")
		
		
		
		
		//add String attribute
						println 'testSaveAttributeValuesIntegerValue'
						
		Long attributeId=helper.getAttributeId(attributeName:'testSaveAttributeValuesIntegerValue',contentDefId:contentDefId,valueType:"Integer")		
						println 'testSaveAttributeValuesIntegerValue2'
		//create content
		Long contentId =helper.getContentId(contentDefId:contentDefId,name:"testSaveAttributeValuesIntegerValue")
		//create content version
		Long contentVersionId =helper.getContentVersionId(contentId:contentId)
		
		//Long attributeId,String filePath,Integer myIntegerValue,String myStringValue
			//Long attributeValueId =helper.getAttributeValueId(contentVersionId:contentVersionId,attributeId:attributeId,myIntegerValue:5)
			
		def controller = new AttributeValuesController()
		//need to send contentVersionId, attributeId and string value
		controller.stitchesService  = stitchesService
		controller.request.parameters = ['contentVersionId':contentVersionId.toString(),'attributeId':attributeId.toString(),'valueAsInteger':'5']
		controller.saveAttributeValue()

		
		
	}
	
	
	
	void testRetrieveAttributeStringValue() {
		Long contentDefId =helper.getContentDefId(name:'testRetrieveAttributeStringValue')
		
		
		
		
		//add String attribute
		Long attributeId=helper.getAttributeId(attributeName:'testRetrieveAttributeStringValue',contentDefId:contentDefId,valueType:"String")		
		
		//create content
		Long contentId =helper.getContentId(contentDefId:contentDefId,name:"testRetrieveAttributeStringValue")
		//create content version
		Long contentVersionId =helper.getContentVersionId(contentId:contentId)
		
		//Long contentVersionId,Long attributeId,String filePath,Integer myIntegerValue,String myStringValue
	Long attributeValueId =helper.getAttributeValueId(contentVersionId:contentVersionId,attributeId:attributeId,valueAsString:"test string val")
				
				
		def controller = new AttributeValuesController()
		controller.stitchesService  = stitchesService
		//need to send contentVersionId, attributeId and string value
		
		controller.request.parameters = ['contentVersionId':contentVersionId.toString(),'id':attributeValueId.toString()]
		controller.retrieveAttributeValue()
		
		
		
	}
	
	
	
	void testRetrieveAttributeBinaryValue() {
		Long contentDefId =helper.getContentDefId(name:"testRetrieveAttributeBinaryValue")
		
		
		
		//add String attribute
		Long attributeId=helper.getAttributeId(attributeName:'testRetrieveAttributeBinaryValue',contentDefId:contentDefId,valueType:"Binary",mimeType:'image/jpeg')		
		
		//create content
		Long contentId =helper.getContentId(contentDefId:contentDefId,name:"testRetrieveAttributeBinaryValue")
		//create content version
		Long contentVersionId =helper.getContentVersionId(contentId:contentId)
				//need to send contentVersionId
		String sampleImagePath= "/samplecontent/grails_logo.jpg"
		
		//(Long contentVersionId,Long attributeId,String filePath,Integer myIntegerValue,String myStringValue
		Long attributeValueId =helper.getAttributeValueId(contentVersionId:contentVersionId,attributeId:attributeId,filePath:sampleImagePath)
		
		
		
		def controller = new AttributeValuesController()
		controller.stitchesService  = stitchesService
		//need to send contentVersionId, attributeId and string value
		
		controller.request.parameters = ['contentVersionId':contentVersionId.toString(),'attributeId':attributeId.toString()]
		controller.retrieveAttributeValue()
		
		
		
	}
	
	
	void testRemoveAttributeBinaryValue() {
		//we need to create a contentversion and add an attribute
		
		
		Long contentDefId =helper.getContentDefId(name:"testRemoveAttributeBinaryValue")
		Long contentId =helper.getContentId(contentDefId:contentDefId,name:"testRemoveAttributeBinaryValue")
		Long contentVersionId =helper.getContentVersionId(contentId:contentId)
		
		Long attributeId =helper.getAttributeId(attributeName:'testRemoveAttributeBinaryValue',contentDefId:contentDefId,valueType:"Binary",mimeType:'image/jpeg')
		
		//need to send contentVersionId
		String sampleImagePath= "/samplecontent/grails_logo.jpg"
		
		Long attributeValueId =helper.getAttributeValueId(contentVersionId:contentVersionId,attributeId:attributeId,filePath:sampleImagePath)
		
		
		
		def controller = new AttributeValuesController()
		controller.stitchesService  = stitchesService
		
		
		controller.request.parameters = [attributeValueId:attributeValueId.toString(),'contentVersionId':contentVersionId.toString()]
		controller.removeAttributeValue()
		
		
		
	}
	
	void testRemoveAttributeStringValue() {
		//we need to create a contentversion and add an attribute
		
		
		
		Long contentDefId =helper.getContentDefId(name:"testRemoveAttributeStringValue")
		Long contentId =helper.getContentId(contentDefId:contentDefId,name:"testRemoveAttributeStringValue")
		Long contentVersionId =helper.getContentVersionId(contentId:contentId)
		
		Long attributeId =helper.getAttributeId(attributeName:'testRemoveAttributeStringValue',contentDefId:contentDefId,valueType:"String")
		

		Long attributeValueId =helper.getAttributeValueId(attributeName:'testRemoveAttributeStringValue',contentVersionId:contentVersionId,attributeId:attributeId,myStringValue:"testRemoveAttributeStringValue")
		
		
		
		def controller = new AttributeValuesController()
		controller.stitchesService  = stitchesService
		
		
		controller.request.parameters = ['attributeValueId':attributeValueId.toString(),'contentVersionId':contentVersionId.toString()]
		controller.removeAttributeValue()
		
		
		
	}
	
	
	
	
}
